package com.jl15988.mybatispluskit.join.enums;

/**
 * 连接类型枚举
 * 用于定义表与表之间的连接方式
 * 
 * @author Jalon
 * @since 2025/1/1
 */
public enum JoinType {
    
    /**
     * 内连接
     * 只返回两个表中匹配的记录
     */
    INNER("INNER JOIN"),
    
    /**
     * 左外连接
     * 返回左表的所有记录，以及右表中匹配的记录
     */
    LEFT("LEFT JOIN"),
    
    /**
     * 右外连接
     * 返回右表的所有记录，以及左表中匹配的记录
     */
    RIGHT("RIGHT JOIN"),
    
    /**
     * 全外连接
     * 返回两个表中的所有记录
     */
    FULL("FULL OUTER JOIN");
    
    /**
     * SQL 关键字
     */
    private final String sql;
    
    /**
     * 构造函数
     * 
     * @param sql SQL 关键字
     */
    JoinType(String sql) {
        this.sql = sql;
    }
    
    /**
     * 获取 SQL 关键字
     * 
     * @return SQL 关键字
     */
    public String getSql() {
        return sql;
    }
} 